/***********************************************
 @Name :        小铭同学
 @Time :        2025-08-15
 @Email :       LiaoMingWJ233@163.com
 @Comment :     功能窗口 天气预报
 @FileName :    widget_funcd_weather.cpp
 @Version :     1.0
************************************************/


#include "widget_funcd_weather.h"
#include "ui_widget_funcd_weather.h"

Widget_funcD_Weather::Widget_funcD_Weather(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget_funcD_Weather)
{
    ui->setupUi(this); 
    
    // 一周天气预报 
    ui->label_week_1->setFont(QFont("楷体",12));
    ui->label_fields_1->setFont(QFont("楷体",12));
    ui->label_fields_1->setStyleSheet("color: #e056c4;");
    ui->label_fieldx_1->setFont(QFont("楷体",12));
    ui->label_fieldx_1->setStyleSheet("color: #e056c4;");
    
    ui->label_week_2->setFont(QFont("楷体",12));
    ui->label_fields_2->setFont(QFont("楷体",12));
    ui->label_fields_2->setStyleSheet("color: #e056c4;");
    ui->label_fieldx_2->setFont(QFont("楷体",12));
    ui->label_fieldx_2->setStyleSheet("color: #e056c4;");
    
    ui->label_week_3->setFont(QFont("楷体",12));
    ui->label_fields_3->setFont(QFont("楷体",12));
    ui->label_fields_3->setStyleSheet("color: #e056c4;");
    ui->label_fieldx_3->setFont(QFont("楷体",12));
    ui->label_fieldx_3->setStyleSheet("color: #e056c4;");
    
    ui->label_week_4->setFont(QFont("楷体",12));
    ui->label_fields_4->setFont(QFont("楷体",12));
    ui->label_fields_4->setStyleSheet("color: #e056c4;");
    ui->label_fieldx_4->setFont(QFont("楷体",12));
    ui->label_fieldx_4->setStyleSheet("color: #e056c4;");

    ui->label_week_5->setFont(QFont("楷体",12));
    ui->label_fields_5->setFont(QFont("楷体",12));
    ui->label_fields_5->setStyleSheet("color: #e056c4;");
    ui->label_fieldx_5->setFont(QFont("楷体",12));
    ui->label_fieldx_5->setStyleSheet("color: #e056c4;");
    
    ui->label_week_6->setFont(QFont("楷体",12));
    ui->label_fields_6->setFont(QFont("楷体",12));
    ui->label_fields_6->setStyleSheet("color: #e056c4;");
    ui->label_fieldx_6->setFont(QFont("楷体",12));
    ui->label_fieldx_6->setStyleSheet("color: #e056c4;");
    
    ui->label_week_7->setFont(QFont("楷体",12));
    ui->label_fields_7->setFont(QFont("楷体",12));
    ui->label_fields_7->setStyleSheet("color: #e056c4;"); // 兰紫
    ui->label_fieldx_7->setFont(QFont("楷体",12));
    ui->label_fieldx_7->setStyleSheet("color: #e056c4;");
    
    // 设置样式表 - 背景和圆角
    ui->label_week_1->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    ui->label_week_2->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    ui->label_week_3->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    ui->label_week_4->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    ui->label_week_5->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    ui->label_week_6->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    ui->label_week_7->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    
    // 当日 天气预报       
    ui->label_today_tp2->setPixmap(QPixmap(":/风"));
    ui->label_today_tp3->setPixmap(QPixmap(":/日落"));
    ui->label_today_tp4->setPixmap(QPixmap(":/日出"));
    ui->label_today_tp5->setPixmap(QPixmap(":/温度"));
    
    ui->label->setFont(QFont("楷体",13));
    ui->label->setStyleSheet("   color: #e056c4;");
    
    // 设置样式表 - 背景和圆角
    ui->label_background->setFont(QFont("楷体",20));
    ui->label_background->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    // 设置样式表 - 背景和圆角
    ui->label_background_2->setFont(QFont("楷体",14));
    ui->label_background_2->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    // 设置样式表 - 背景和圆角
    ui->label_background_3->setFont(QFont("楷体",12));
    ui->label_background_3->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    // 设置样式表 - 背景和圆角
    ui->label_background_4->setFont(QFont("楷体",12));
    ui->label_background_4->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    // 设置样式表 - 背景和圆角
    ui->label_background_5->setFont(QFont("楷体",12));
    ui->label_background_5->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    // 设置样式表 - 背景和圆角
    ui->label_background_6->setFont(QFont("楷体",12));
    ui->label_background_6->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    // 设置样式表 - 背景和圆角
    ui->label_background_7->setFont(QFont("楷体",12));
    ui->label_background_7->setStyleSheet(
                "QLabel {"
                "   background-color:#40e0d0;"   // 绿松石色
                "   border-radius: 15px;"        // 圆角半径
                "   padding: 5px;"               // 内边距
                "   color: #e056c4;"
                "}"
                );
    
    // 天气预报 曲线图
    // 连接信号 接收到请求的信号
    // 获取到数据之后
    Network_Access = new QNetworkAccessManager(this);
    connect(Network_Access, &QNetworkAccessManager::finished, this, &Widget_funcD_Weather::onReplied);
    // 地区
    ui->label_dq->setFont(QFont("楷体",15));
    
    // 搜索框
    // 设置左侧提示文字    
    ui->lineEdit->setFont(QFont("楷体",12));
    ui->lineEdit->setPlaceholderText("请输入地区");
    
    // 创建搜索动作并添加到右侧
    QAction *searchAction = new QAction(ui->lineEdit);
    searchAction->setIcon(QIcon(":/搜索"));  // 使用你的图标路径
    ui->lineEdit->addAction(searchAction, QLineEdit::TrailingPosition);  // 关键修改：使用TrailingPosition  
   
    // 设置浅蓝色主题样式表
    ui->lineEdit->setStyleSheet(
        "QLineEdit {"
        "   padding-right: 20px;"                   // 为右侧图标留出空间
        "   border: 1px solid qlineargradient("     // 浅蓝色渐变边框
        "       x1:0, y1:0, x2:1, y2:0,"
        "       stop:0 #87CEFA, stop:1 #1E90FF);"  // 天蓝到道奇蓝渐变
        "   border-radius: 3px;"                   // 圆角
        "   background-color: rgba(173, 216, 230, 0.5);"  // 半透明浅蓝背景(lightblue)
        "   color: #000000;"                       // 黑色文字
        "   selection-background-color: #ADD8E6;"  // 选中文本背景色
        "}"
        "QLineEdit:hover {"
        "   border: 1px solid qlineargradient("
        "       x1:0, y1:0, x2:1, y2:0,"
        "       stop:0 #A7C7E7, stop:1 #6495ED);"  // 悬停时更亮的蓝色渐变
        "}"
        "QLineEdit:focus {"
        "   border: 1px solid qlineargradient("
        "       x1:0, y1:0, x2:1, y2:0,"
        "       stop:0 #B0E0E6, stop:1 #4682B4);"  // 聚焦时更深的蓝色渐变
        "   background-color: rgba(176, 224, 230, 0.7);"  // 聚焦时增加背景不透明度
        "}"
    );
    
    // 连接回车键信号
    connect(ui->lineEdit, &QLineEdit::returnPressed, [=]() {
        text = ui->lineEdit->text(); // 获取输入框内容      
        split();// 拆分输入 省 市 县        
        qDebug() << "输入内容:" << text;       
        ui->lineEdit->clear(); // 清空输入框
        text.clear();
        
        // 设置请求的URL（如:北京天气API，城市代码101010100）
        QUrl url("http://t.weather.itboy.net/api/weather/city/"+coding);
        // 使用网络访问管理器发送GET请求
        Network_Access->get(QNetworkRequest(url));       
    });
    
    // 连接点击信号
    connect(searchAction, &QAction::triggered, [&](){
        text = ui->lineEdit->text(); // 获取输入框内容
        split();// 拆分输入 省 市 县        
        qDebug() << "输入内容:" << text;
        //qDebug() << "搜索图标被点击";
        ui->lineEdit->clear(); // 清空输入框
        text.clear();
        
        // 设置请求的URL（如:北京天气API，城市代码101010100）
        QUrl url("http://t.weather.itboy.net/api/weather/city/"+coding);
        // 使用网络访问管理器发送GET请求
        Network_Access->get(QNetworkRequest(url)); 
    });
    

}

Widget_funcD_Weather::~Widget_funcD_Weather()
{
    delete ui;
}

// 拆分输入 省 市 县
void Widget_funcD_Weather::split()
{
    int provincePos = text.indexOf("省");
    int cityPos = text.indexOf("市");
    int countyPos = text.indexOf("区");  // 先尝试找"区"
    if (countyPos == -1) {
        countyPos = text.indexOf("县");  // 如果没找到"区"，再找"县"
    }
    
    ui->label_dq->setStyleSheet("   color: #e056c4;");
    // 情况1：标准省+市+县/区（如"湖南省长沙市长沙县"）
    if (provincePos != -1 && cityPos != -1 && countyPos != -1) {
        QString province = text.left(provincePos + 1);
        QString city = text.mid(provincePos + 1, cityPos - provincePos);
        QString county = text.mid(cityPos + 1, countyPos - cityPos + 1);
        
        city_whole = city;
        county_whole = county;
        
        coding =findCodeByCity(county);
        
        QString formatted = province + "·" + city + "·" + county;
        ui->label_dq->setText(formatted);
    }
    // 情况2：直辖市+区（如"北京市朝阳区"）
    else if (provincePos == -1 && cityPos != -1 && countyPos != -1) {
        QString city = text.left(cityPos + 1);
        QString county = text.mid(cityPos + 1);
        
        city_whole = city;
        county_whole = county;
        
        coding =findCodeByCity(county);
        
        ui->label_dq->setText(city + "·" + county);
    }
    // 情况3：智能处理（没有省/市/县的都视为市级）
    else {
        // 自动补全"市"后缀（如果原文本没有）
        QString city = text;
        if(city.endsWith("区")||city.endsWith("市")||city.endsWith("县"))
        {
            city_whole = city; // 区\市
            coding =findCodeByCity(city);
            ui->label_dq->setText(city);
        }else if(!city.endsWith("区")||!city.endsWith("市")||!city.endsWith("县"))
        {
            city_whole = city; // 区\市
            coding =findCodeByCity(city);            
            city += "市";
            ui->label_dq->setText(city);
        }              
    }    
}

// 网络请求完成后的响应槽函数
void Widget_funcD_Weather::onReplied(QNetworkReply *reply)
{
    // 获取HTTP响应的状态码
    int status_code = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();

    // 调试输出请求信息
    /*qDebug() << "operation:" << reply->operation();         // 输出请求方式（GET/POST等）
    qDebug() << "status code:" << status_code;              // 输出HTTP状态码
    qDebug() << "url:" << reply->url();                     // 输出请求的URL
    qDebug() << "raw header:" << reply->rawHeaderList(); */   // 输出响应头信息

    // 检查是否有错误发生或状态码不是200（成功）
    if (reply->error() != QNetworkReply::NoError || status_code != 200) {
        // 显示错误提示框
        QMessageBox::warning(this, "提示", "请求数据失败！", QMessageBox::Ok);
    } else {
        // 获取响应的全部数据
        QByteArray reply_data = reply->readAll();
        // 将数据转换为UTF-8格式（虽然可能已经是UTF-8，这里确保格式正确）
        QByteArray byteArray = QString(reply_data).toUtf8();
        // 将获取的天气JSON数据保存到成员变量中
        this->Weather_Json_data = byteArray;
        // 调试输出获取的原始JSON数据
        //qDebug() << "read all:" << Weather_Json_data.data();               
    }    
    // 数据解析完成后，释放reply对象（使用deleteLater确保安全释放）
    reply->deleteLater();
    
    Obtain_the_weather_information();
    this->Weather_Json_data.clear();
    coding.clear();
}

QString Widget_funcD_Weather::findCodeByCity(const QString &targetCity)
{
    QString filePath="D:\\CSESPX\\Qt\\Qt_UI\\weather\\city.txt"; // 天气预报 城市编码
    // 创建QFile对象并尝试以只读和文本模式打开文件
    QFile file(filePath);
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
        qWarning() << "文件打开失败：" << filePath;
        return QString();
    }

    // 创建文本流并设置编码为UTF-8（确保中文正常读取）
    QTextStream in(&file);
    in.setCodec("UTF-8");

    // 逐行读取文件内容
    while (!in.atEnd()) {
        // 读取一行并去除首尾空白字符
        QString line = in.readLine().trimmed();
        
        // 跳过空行
        if (line.isEmpty()) {
            continue;
        }

        // 使用正则表达式分割字符串（匹配一个或多个空白字符）
        // QString::SkipEmptyParts参数会跳过空的部分
        QStringList parts = line.split(QRegExp("\\s+"), QString::SkipEmptyParts);

        // 确保分割后至少有两个部分（编码和城市）
        if (parts.size() >= 2) {
            QString code = parts[0];    // 第一部分是编码
            QString city = parts[1];    // 第二部分是城市名

            // 如果找到目标城市，关闭文件并返回对应的编码
            if (city == targetCity) {
                file.close();
                qDebug()<<code;
                return code;
            }
        }
    }

    // 关闭文件（没有找到匹配项）
    file.close();
    qDebug()<<"没有找到:"<<targetCity;
    return QString();
}

void Widget_funcD_Weather::Obtain_the_weather_information()
{
    // 从保存的JSON数据中加载天气信息
    info.loadFromJson(QString::fromUtf8(this->Weather_Json_data));
        
    // 调试输出基本天气信息
    qDebug() << "城市:" << info.city();                      // 输出城市名称
    /*qDebug() << "日期:" << info.date();                      // 输出当前日期
    qDebug() << "更新时间:" << info.updateTime();             // 输出天气数据更新时间
    qDebug() << "温度:" << info.wendu() << "湿度:" << info.shidu(); // 输出温度和湿度
    qDebug() << "空气质量:" << info.quality() << "PM2.5:" << info.pm25() << "PM10:" << info.pm10(); // 输出空气质量信息
    qDebug() << "适宜人群:" << info.ganmao(); */              // 输出健康提示
    
    // 循环输出未来7天的天气预报
    /*for (const Forecast &f : info.forecastList()) {
        qDebug() << f.ymd << f.week << f.type;              // 输出日期、星期和天气类型
        qDebug() << "温度:" << f.low << "~" << f.high;       // 输出温度范围
        qDebug() << "日出:" << f.sunrise << "日落:" << f.sunset; // 输出日出日落时间
        qDebug() << "风向:" << f.fx <<"风力:" << f.fl;       // 输出风向和风力
        qDebug() << "AQI:" << f.aqi;                        // 输出空气质量指数
        qDebug() << "提示:" << f.notice;                    // 输出天气提示
    }*/
     
    // 获取天气数据并设置图表
    QList<Forecast> temp = info.forecastList();
    temp_whole=temp;
    
    ui->label->setText(temp_whole.front().notice); 
            
    int wenduInt = (int) info.wendu().toDouble();
    ui->label_background->setText(QString::number(wenduInt) +"℃"); // 显示温度
        
    ui->label_background_2->setText("RH:"+info.shidu()+
                                    "\nPM2.5:"+QString::number(info.pm25())+
                                    "\nPM10:"+QString::number(info.pm10())+
                                    "\nAQI:"+QString::number(temp_whole.front().aqi)); 
    
    ui->label_background_3->setText("UpdateTime\n"+temp_whole.front().ymd+
                                    "\n"+info.updateTime()+
                                    "\n"+temp_whole.front().week+
                                    "\n"+temp_whole.front().type);
            
     ui->label_background_4->setText(temp_whole.front().fx+"\n"+temp_whole.front().fl);   
     
     ui->label_background_5->setText("日落\n"+temp_whole.front().sunset);
           
     ui->label_background_6->setText("日出\n"+temp_whole.front().sunrise);
     
     QString temperature1 = temp_whole.front().low.mid(3);  // 从第3个字符开始截取
     QString temperature2 = temp_whole.front().high.mid(3);  // 从第3个字符开始截取
     ui->label_background_7->setText(temperature1+"~"+temperature2);
            
     if(temp_whole.front().type=="晴")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/晴"));
     }else if(temp_whole.front().type=="阴")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/阴"));
     }else if(temp_whole.front().type=="多云")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/多云")); 
     }else if(temp_whole.front().type=="小雨")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/小雨"));
     }else if(temp_whole.front().type=="中雨")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/中雨"));
     }else if(temp_whole.front().type=="大雨")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/大雨"));
     }else if(temp_whole.front().type=="阵雨")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/阵雨"));
     }else if(temp_whole.front().type=="雷阵雨")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/雷阵雨"));
     }else if(temp_whole.front().type=="小雪")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/小雪"));
     }else if(temp_whole.front().type=="中雪")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/中雪"));
     }else if(temp_whole.front().type=="大雪")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/大雪"));
     }else if(temp_whole.front().type=="雾")
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/雾"));
     }else
     {
         ui->label_today_tp1->setPixmap(QPixmap(":/多云"));
     }
     
    // 将天气数据传递  
    // 初始化高温图表
    ui->widget_3->setForecastData(temp);
    // 如果需要强制重绘
    ui->widget_3->update();
    
    // 初始化低温图表
    ui->widget_5->setForecastData(temp);
    // 如果需要强制重绘
    ui->widget_5->update();
    
    Weather_week();
}

void Widget_funcD_Weather::Weather_week()
{
    // 循环输出未来7天的天气预报
    /*for (const Forecast &f : info.forecastList()) 
    {
        qDebug() << f.ymd << f.week << f.type;              // 输出日期、星期和天气类型
        qDebug() << "温度:" << f.low << "~" << f.high;       // 输出温度范围
        qDebug() << "日出:" << f.sunrise << "日落:" << f.sunset; // 输出日出日落时间
        qDebug() << "风向:" << f.fx <<"风力:" << f.fl;       // 输出风向和风力
        qDebug() << "AQI:" << f.aqi;                        // 输出空气质量指数
        qDebug() << "提示:" << f.notice;                    // 输出天气提示
    }*/
    
    if (temp_whole.size() == 7) {  // 确保至少有7个元素
        ui->label_fields_1->setText(temp_whole[0].week); // 直接访问第1个元素的 week
        ui->label_fieldx_1->setText(temp_whole[0].type);
        QString temperature11 = temp_whole[0].low.mid(3);  // 从第3个字符开始截取
        QString temperature21 = temp_whole[0].high.mid(3);  // 从第3个字符开始截取
        ui->label_week_1->setText(temperature11+"~"+temperature21);
        setWeatherPixmap(ui->label_week_tp_1, temp_whole[0].type);
        
        ui->label_fields_2->setText(temp_whole[1].week); 
        ui->label_fieldx_2->setText(temp_whole[1].type);
        QString temperature12 = temp_whole[1].low.mid(3);
        QString temperature22 = temp_whole[1].high.mid(3); 
        ui->label_week_2->setText(temperature12+"~"+temperature22);
        setWeatherPixmap(ui->label_week_tp_2, temp_whole[1].type);
        
        ui->label_fields_3->setText(temp_whole[2].week); 
        ui->label_fieldx_3->setText(temp_whole[2].type);
        QString temperature13 = temp_whole[2].low.mid(3);
        QString temperature23 = temp_whole[2].high.mid(3); 
        ui->label_week_3->setText(temperature13+"~"+temperature23);
        setWeatherPixmap(ui->label_week_tp_3, temp_whole[2].type);
        
        ui->label_fields_4->setText(temp_whole[3].week); 
        ui->label_fieldx_4->setText(temp_whole[3].type);
        QString temperature14 = temp_whole[3].low.mid(3);
        QString temperature24 = temp_whole[3].high.mid(3); 
        ui->label_week_4->setText(temperature14+"~"+temperature24);
        setWeatherPixmap(ui->label_week_tp_4, temp_whole[3].type);
        
        ui->label_fields_5->setText(temp_whole[4].week); 
        ui->label_fieldx_5->setText(temp_whole[4].type);
        QString temperature15 = temp_whole[4].low.mid(3);
        QString temperature25 = temp_whole[4].high.mid(3); 
        ui->label_week_5->setText(temperature15+"~"+temperature25);
        setWeatherPixmap(ui->label_week_tp_5, temp_whole[4].type);
        
        ui->label_fields_6->setText(temp_whole[5].week); 
        ui->label_fieldx_6->setText(temp_whole[5].type);
        QString temperature16 = temp_whole[5].low.mid(3);
        QString temperature26 = temp_whole[5].high.mid(3); 
        ui->label_week_6->setText(temperature16+"~"+temperature26);
        setWeatherPixmap(ui->label_week_tp_6, temp_whole[5].type);
        
        ui->label_fields_7->setText(temp_whole[6].week); 
        ui->label_fieldx_7->setText(temp_whole[6].type);
        QString temperature17 = temp_whole[6].low.mid(3);
        QString temperature27 = temp_whole[6].high.mid(3); 
        ui->label_week_7->setText(temperature17+"~"+temperature27);
        setWeatherPixmap(ui->label_week_tp_7, temp_whole[6].type);
    } 
    

}

void Widget_funcD_Weather::setWeatherPixmap(QLabel* label, const QString& weatherType) 
{
    if (weatherType == "晴") {
        label->setPixmap(QPixmap(":/晴"));
    } else if (weatherType == "阴") {
        label->setPixmap(QPixmap(":/阴"));
    } else if (weatherType == "多云") {
        label->setPixmap(QPixmap(":/多云"));
    } else if (weatherType == "小雨") {
        label->setPixmap(QPixmap(":/小雨"));
    } else if (weatherType == "中雨") {
        label->setPixmap(QPixmap(":/中雨"));
    } else if (weatherType == "大雨") {
        label->setPixmap(QPixmap(":/大雨"));
    } else if (weatherType == "阵雨") {
        label->setPixmap(QPixmap(":/阵雨"));
    } else if (weatherType == "雷阵雨") {
        label->setPixmap(QPixmap(":/雷阵雨"));
    } else if (weatherType == "小雪") {
        label->setPixmap(QPixmap(":/小雪"));
    } else if (weatherType == "中雪") {
        label->setPixmap(QPixmap(":/中雪"));
    } else if (weatherType == "大雪") {
        label->setPixmap(QPixmap(":/大雪"));
    } else if (weatherType == "雾") {
        label->setPixmap(QPixmap(":/雾"));
    } else {
        label->setPixmap(QPixmap(":/多云")); // 默认情况
    }
}
